home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / utilities / time / dclock16.lha / DClock16 / src / Window.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-05  |  6.9 KB  |  227 lines

  1. /*
  2.  *  Source generated with GadToolsBox V1.4
  3.  *  which is (c) Copyright 1991,92 Jaba Development
  4.  */
  5.  
  6. #include <exec/types.h>
  7. #include <intuition/intuition.h>
  8. #include <intuition/classes.h>
  9. #include <intuition/classusr.h>
  10. #include <intuition/imageclass.h>
  11. #include <intuition/gadgetclass.h>
  12. #include <libraries/gadtools.h>
  13. #include <graphics/displayinfo.h>
  14. #include <graphics/gfxbase.h>
  15. #include <clib/exec_protos.h>
  16. #include <clib/intuition_protos.h>
  17. #include <clib/gadtools_protos.h>
  18. #include <clib/graphics_protos.h>
  19. #include <clib/utility_protos.h>
  20. #include <string.h>
  21. #include <clib/diskfont_protos.h>
  22.  
  23. #include "Main.h"
  24. #include "Window.h"
  25.  
  26. #define HEIGHT_NODATE 25
  27. #define HEIGHT_DATE 40
  28.  
  29. struct Screen         *Scr = NULL;
  30. APTR                   VisualInfo = NULL;
  31. struct Window         *DClockWnd = NULL;
  32. struct Menu           *DClockMenus = NULL;
  33. struct TextFont       *Font       = NULL;
  34. UWORD                  DClockLeft = 213;
  35. UWORD                  DClockTop = 93;
  36. UWORD                  DClockWidth = 84;
  37. UWORD                  DClockHeight = 25;
  38. UBYTE                 *DClockWdt;
  39.  
  40. struct TextAttr topaz8 = {
  41.      ( STRPTR )"topaz.font", 8, 0x00, 0x62 };
  42.  
  43. struct NewMenu DClockNewMenu[] = {
  44.      NM_TITLE, (STRPTR)"DClock ", NULL, 0, 0L, NULL,
  45.      NM_ITEM, (STRPTR)"Display seconds", (STRPTR)"S", CHECKIT|MENUTOGGLE, 0L, NULL,
  46.      NM_ITEM, (STRPTR)"24h", (STRPTR)"H", CHECKIT|MENUTOGGLE, 0L, NULL,
  47.      NM_ITEM, (STRPTR)"Date", (STRPTR)"D", CHECKIT|MENUTOGGLE, 0L, NULL,
  48.      NM_ITEM, (STRPTR)"dd-mm-yyyy", NULL, CHECKIT|MENUTOGGLE, 0L, NULL,
  49.      NM_ITEM, (STRPTR)"Alarm on", (STRPTR)"1", CHECKIT|MENUTOGGLE, 0L, NULL,
  50.      NM_ITEM, (STRPTR)"Timer on", (STRPTR)"2", NM_ITEMDISABLED|CHECKIT|MENUTOGGLE, 0L, NULL,
  51.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  52.      NM_ITEM, (STRPTR)"Set alarm clock...", (STRPTR)"A", 0, 0L, NULL,
  53.      NM_ITEM, (STRPTR)"Set timer...", (STRPTR)"T", 0, 0L, NULL,
  54.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  55.      NM_ITEM, (STRPTR)"Alarm command...", (STRPTR)"3", 0, 0L, NULL,
  56.      NM_ITEM, (STRPTR)"Timer command...", (STRPTR)"4", 0, 0L, NULL,
  57.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  58.      NM_ITEM, (STRPTR)"Save preferences", (STRPTR)"W", 0, 0L, NULL,
  59.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  60.      NM_ITEM, (STRPTR)"About...", NULL, 0, 0L, NULL,
  61.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  62.      NM_ITEM, (STRPTR)"Quit", (STRPTR)"Q", 0, 0L, NULL,
  63.      NM_TITLE, (STRPTR)"Window ", NULL, 0, 0L, NULL,
  64.      NM_ITEM, (STRPTR)"Foreground color", NULL, 0, 0L, NULL,
  65.      NM_SUB, (STRPTR)"0", NULL, CHECKIT|MENUTOGGLE, ~(1 << 4), NULL,
  66.      NM_SUB, (STRPTR)"1", NULL, CHECKIT|MENUTOGGLE, ~(1 << 4), NULL,
  67.      NM_SUB, (STRPTR)"2", NULL, CHECKIT|MENUTOGGLE, ~(1 << 4), NULL,
  68.      NM_SUB, (STRPTR)"3", NULL, CHECKIT|MENUTOGGLE, ~(1 << 4), NULL,
  69.      NM_ITEM, (STRPTR)"Background color", NULL, 0, 0L, NULL,
  70.      NM_SUB, (STRPTR)"0", NULL, CHECKIT|MENUTOGGLE, ~(1 << 4), NULL,
  71.      NM_SUB, (STRPTR)"1", NULL, CHECKIT|MENUTOGGLE, ~(1 << 4), NULL,
  72.      NM_SUB, (STRPTR)"2", NULL, CHECKIT|MENUTOGGLE, ~(1 << 4), NULL,
  73.      NM_SUB, (STRPTR)"3", NULL, CHECKIT|MENUTOGGLE, ~(1 << 4), NULL,
  74.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  75.      NM_ITEM, (STRPTR)"Dragbar", (STRPTR)"B", CHECKIT|MENUTOGGLE, 0L, NULL,
  76.      NM_ITEM, (STRPTR)"Activate", NULL, CHECKIT|MENUTOGGLE, 0L, NULL,
  77.      NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  78.      NM_ITEM, (STRPTR)"Iconify", (STRPTR)"I", 0, 0L, NULL,
  79.      NM_END, NULL, NULL, 0, 0L, NULL };
  80.  
  81. int SetupScreen( void )
  82. {
  83.  
  84.      if ( ! ( Scr = LockPubScreen((UBYTE * )PubScreenName)))
  85.      {
  86.           if (strcmp(PubScreenName, "Workbench"))
  87.               Scr = LockPubScreen((UBYTE * )"Workbench");
  88.           if (! Scr)
  89.               return( 1L );
  90.      }
  91.  
  92.      if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  93.           return( 2L );
  94.  
  95.      return( 0L );
  96. }
  97.  
  98. void CloseDownScreen( void )
  99. {
  100.      if ( VisualInfo ) {
  101.           FreeVisualInfo( VisualInfo );
  102.           VisualInfo = NULL;
  103.      }
  104.  
  105.      if ( Scr        ) {
  106.           UnlockPubScreen( NULL, Scr );
  107.           Scr = NULL;
  108.      }
  109. }
  110.  
  111. int OpenDClockWindow(struct AppPrefs *prefs)
  112. {
  113.      UWORD                offx = Scr->WBorLeft,offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  114.      int                  fg = prefs->foreground;
  115.      int                  bg = prefs->background;
  116.      int                  windowflags;
  117.      int fpen = 0;
  118.  
  119.      DClockLeft = prefs->windowX;  // Set top left corner of the window
  120.      DClockTop = prefs->windowY;
  121.      DClockHeight = prefs->date ? HEIGHT_DATE : HEIGHT_NODATE;
  122.  
  123.      if (prefs->dragbar)
  124.      {
  125.          windowflags = WFLG_DRAGBAR|WFLG_SMART_REFRESH;
  126.          DClockNewMenu[31].nm_Flags = CHECKIT|CHECKED|MENUTOGGLE;
  127.          DClockWdt = (UBYTE *)"DClock";
  128.      }
  129.      else
  130.      {
  131.          windowflags = WFLG_SMART_REFRESH;
  132.          DClockNewMenu[31].nm_Flags = CHECKIT|MENUTOGGLE;
  133.          DClockWdt = NULL;
  134.      }
  135.      if (((struct Library *)IntuitionBase)->lib_Version >= 39)
  136.      {
  137.          windowflags |= WFLG_NEWLOOKMENUS;
  138.          fpen = 1;
  139.      }
  140.  
  141.      if (prefs->activate)
  142.      {
  143.          windowflags |= WFLG_ACTIVATE;
  144.          DClockNewMenu[32].nm_Flags = CHECKIT|CHECKED|MENUTOGGLE;
  145.      }
  146.      else
  147.      {
  148.          windowflags &= (~WFLG_ACTIVATE);
  149.          DClockNewMenu[32].nm_Flags = CHECKIT|MENUTOGGLE;
  150.      }
  151.  
  152.  
  153.      DClockNewMenu[21 + fg].nm_Flags = CHECKIT|CHECKED|MENUTOGGLE;
  154.      DClockNewMenu[26 + bg].nm_Flags = CHECKIT|CHECKED|MENUTOGGLE;
  155.  
  156.      if (prefs->seconds)
  157.          DClockNewMenu[1].nm_Flags = CHECKIT|CHECKED|MENUTOGGLE;
  158.      else
  159.          DClockNewMenu[1].nm_Flags = CHECKIT|MENUTOGGLE;
  160.  
  161.      if (prefs->twentyfour)
  162.          DClockNewMenu[2].nm_Flags = CHECKIT|CHECKED|MENUTOGGLE;
  163.      else
  164.          DClockNewMenu[2].nm_Flags = CHECKIT|MENUTOGGLE;
  165.  
  166.      if (prefs->date)
  167.          DClockNewMenu[3].nm_Flags = CHECKIT|CHECKED|MENUTOGGLE;
  168.      else
  169.          DClockNewMenu[3].nm_Flags = CHECKIT|MENUTOGGLE;
  170.  
  171.      if (prefs->ddmmyy)
  172.          DClockNewMenu[4].nm_Flags = CHECKIT|CHECKED|MENUTOGGLE;
  173.      else
  174.          DClockNewMenu[4].nm_Flags = CHECKIT|MENUTOGGLE;
  175.  
  176.  
  177.      if (prefs->alarm)
  178.          DClockNewMenu[5].nm_Flags = CHECKIT|CHECKED|MENUTOGGLE;
  179.      else
  180.          DClockNewMenu[5].nm_Flags = CHECKIT|MENUTOGGLE;
  181.  
  182.      if (prefs->timer)
  183.          DClockNewMenu[6].nm_Flags = CHECKIT|CHECKED|MENUTOGGLE;
  184.      else if (prefs->timerval)
  185.          DClockNewMenu[6].nm_Flags = CHECKIT|MENUTOGGLE;
  186.      else
  187.          DClockNewMenu[6].nm_Flags = NM_ITEMDISABLED|CHECKIT|MENUTOGGLE;
  188.  
  189.      if ( ! ( DClockMenus = CreateMenus( DClockNewMenu, GTMN_FrontPen, fpen, TAG_DONE )))
  190.           return( 3L );
  191.  
  192.      LayoutMenus( DClockMenus, VisualInfo, TAG_DONE );
  193.  
  194.      if ( ! ( DClockWnd = OpenWindowTags( NULL,
  195.                           WA_Left,          DClockLeft,
  196.                           WA_Top,           DClockTop,
  197.                           WA_InnerWidth,    DClockWidth,
  198.                           WA_InnerHeight,   DClockHeight,
  199.                           WA_IDCMP,         IDCMP_MENUPICK|IDCMP_REFRESHWINDOW|IDCMP_CLOSEWINDOW,
  200.                           WA_Flags,         windowflags,
  201.                           WA_Title,         DClockWdt,
  202.                           WA_ScreenTitle,   "DClock V1.6 © 1995",
  203.                           WA_PubScreen,     Scr,
  204.                           TAG_DONE )))
  205.           return( 4L );
  206.  
  207.      SetMenuStrip( DClockWnd, DClockMenus );
  208.      GT_RefreshWindow( DClockWnd, NULL );
  209.  
  210.  
  211.      return( 0L );
  212. }
  213.  
  214. void CloseDClockWindow( void )
  215. {
  216.      if ( DClockMenus      ) {
  217.           ClearMenuStrip( DClockWnd );
  218.           FreeMenus( DClockMenus );
  219.           DClockMenus = NULL;    }
  220.  
  221.      if ( DClockWnd        ) {
  222.           CloseWindow( DClockWnd );
  223.           DClockWnd = NULL;
  224.      }
  225. }
  226.  
  227.